flyweight design pattern example